package pe.edu.sistemas.sisdiho.repositories;

import java.sql.Date;
import java.sql.Time;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import pe.edu.sistemas.sisdiho.entities.Asistencia;
import pe.edu.sistemas.sisdiho.mappers.AsistenciaMapper;

@Repository
public class AsistenciaRepository {
	@Autowired
	private AsistenciaMapper asistenciaMapper;
	
	public List<Asistencia> obtenerAsistencias(){
		return asistenciaMapper.obtenerAsistencias();
	}
	
	public Asistencia obtenerAsistenciaxId(int idAsistencia){
		return asistenciaMapper.obtenerAsistenciaxId(idAsistencia);
	}
	
	public List<Asistencia> obtenerAsistenciasxFecha(Date fecha){
		return asistenciaMapper.obtenerAsistenciasxFecha(fecha);
	}
	
	public List<Asistencia> obtenerAsistenciasxFechayHora(Date fecha, String hInicio, String hFin){
		return asistenciaMapper.obtenerAsistenciasxFechayHora(fecha, hInicio, hFin);
	}
	
	public Asistencia obtenerAsistenciaxFechayIdHorario(Date fecha, int idHorario){
		return asistenciaMapper.obtenerAsistenciaxFechayIdHorario(fecha, idHorario);
	}

	public void registrarAsistenciaxMotivo(Time horaEntrada, Time horaSalida, String tema, Date fecha, String observacion,
										   String tipoMarca, int idHorarioClase, int idMotivo){
		asistenciaMapper.registrarAsistenciaxMotivo(horaEntrada, horaSalida, tema, fecha, observacion, tipoMarca,
							idHorarioClase, idMotivo);
	}
	
	public void registrarAsistencia(Time horaEntrada, Time horaSalida, String tema, Date fecha, String observacion,
									String tipoMarca, int idHorarioClase){
		asistenciaMapper.registrarAsistencia(horaEntrada, horaSalida, tema, fecha, observacion, tipoMarca,
							idHorarioClase);
	}
	
	public List<Asistencia> obtenerAsistenciasxFechaxDocentexPeriodo(Date date,int idDocente,String periodo){
		return asistenciaMapper.obtenerAsistenciasxFechaxDocentexPeriodo(date,idDocente, periodo);
	}
	
	public void actualizarAsistenciaManual(int idAsistencia, Time horaEntrada, Time horaSalida, String observacion,
			   							   String tipoMarca, int idMotivo){
		asistenciaMapper.actualizarAsistenciaManual(idAsistencia, horaEntrada, horaSalida, observacion, tipoMarca,
							idMotivo);
	}
	
	public int obtenerUltimoIdInsertado(){
		return asistenciaMapper.obtenerUltimoIdInsertado();
	}
}

